node.js 简介
视频锁定
{$ currentTime | date:'mm:ss' $}
{$ timeLeft | date:'mm:ss' $}
Node.js 是一个基于 Google V8 JavaScript 引擎的框架,它的设计目标为提供一个构建 快速,可伸缩网络应用程序的平台。Node.js 是一个基于事件,非阻塞 I/O 的框架,可以很好的处理高并发的断业务。这个在每个平台,每个语言中均有类似的对应,如 C 语言中的 libevent/libev,python 语言中的 twisted 等。
基于事件+非阻塞是保证 Node 保持高速的关键所在,与客户端的 JavaScript 类似,通过 注册事件处理器来确保当关心的事件发生时进行回调,这样主线程就进入了 MainLoop。这样可以仅通过一个线程就处理大量的并发。但是这种模式的限制在于,每个事件的处理器不 能太耗时,否则其他的事件要么排队等待,要么会丢失。
基于事件+非阻塞 IO 的流程大致如下图,当有数据可读的时候,select 将返回可读/写的 描述符,然后才开始真正的 read/write 操作:
图 多路复用模式示意图 这种模型在监听多个客户端描述符时,会非常的高效,且占用的系统资源非常少。node.js 支持扩展。由于实现了 CommonJS 的一些规范,node.js 支持模块的 require 和 exports, 从而使得代码更加模块化,更易于管理。
在线练习
{$ activeFileHint $}